package com.yidu.service.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import com.yidu.action.vo.ListenBranchSellVo;
import com.yidu.dao.ListenBranchSellMapper;
import com.yidu.domain.ListenBranchSell;
import com.yidu.domain.ListenBranchSellDetail;
import com.yidu.domain.ListenFinance;
import com.yidu.domain.ListenStock;
import com.yidu.service.ListenBranchSellService;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author jiangyu
 * @since 2018-11-27
 */
@Service
public class ListenBranchSellServiceImpl implements ListenBranchSellService {
	/**
	 *使用注入订单dao
	 */
	@Resource
	ListenBranchSellMapper dao;
	
	
	@Override
	public int findCount(Map<String, Object> map) {
		//返回dao类查询到的行数
		return dao.findCount(map);
	}

	@Override
	public List<ListenBranchSellVo> findAll(Map<String, Object> map) {
		//用list集合来接收dao类查询到的所有数据
		List<ListenBranchSell> list = dao.findAll(map);
		//创建一个list集合
		List<ListenBranchSellVo> listVo = new ArrayList<>();
		//foreach循环
		for (ListenBranchSell listenBranchSell : list) {
			//创建一个零售vo类
			ListenBranchSellVo vo = new ListenBranchSellVo();
			//把查询到的数据拷贝到vo中
			BeanUtils.copyProperties(listenBranchSell, vo);
			//把拷贝好的数据add到list集合中
			listVo.add(vo);
		}
		//将处理好的数据返回出去
		return listVo;
	}

	@Override
	public int insertTotal(ListenBranchSell sell) {
		//调用的是dao类的增加方法
		return dao.insertSelective(sell);
	}

	@Override
	public List<ListenBranchSellVo> findById(String id) {
		//调用的是dao类的根据id查询的方法
		return (List<ListenBranchSellVo>) dao.selectByPrimaryKey(id);
	}

	@Override
	public int findByIdCount(Map<String, Object> map) {
		//调用的是dao类根据id查询行数的方法
		return dao.findByIdCount(map);
	}

	@Override
	public List<ListenStock> findByMusicalNumber(String muId,String comId) {
		//调用的是dao类根据商品数量查询的方法参数为商品id以及公司id
		return dao.findByMusicalNumber(muId,comId);
	}

	@Override
	public List<ListenBranchSell> findMuId(String bsId) {
		//调用的是dao类根据公司查询商品id的方法
		return dao.findMuId(bsId);
	}

	@Override
	public int reduceStock(String muId, Integer muNumber,String site) {
		//调用的是dao类根据商品id，商品数量，公司id查询的库存
		return dao.reduceStock(muId,muNumber,site);
	}

	@Override
	public void updateSort(String bsId) {
		//调用的是dao类根据公司id修改状态的方法
		dao.updateSort(bsId);
	}

	@Override
	public int updateMoney(String comId,Double sum) {
		//调用的是dao类根据公司id、总金额修改金额的方法
		return dao.updateMoney(comId,sum);
	}

	@Override
	public ListenStock findByStockId(String muId,String comId) {
		//调用的是dao类根据库存id查询的方法  参数为商品id、公司id
		return dao.findByStockId(muId,comId);
	}

	@Override
	public List<ListenBranchSellDetail> findDetail(String bsId) {
		//调用的dao类是根据公司id查询订单详情的方法
		return dao.findDetail(bsId);
	}

	@Override
	public ListenFinance findCwId(String bsId) {
		//调用的是dao类根据公司id查询财务的方法
		return dao.findCwId(bsId);
	}

	@Override
	public ListenBranchSell findAllByBsId(String bsId) {
		//调用的是根据公司id查询的方法
		return dao.findAllByBsId(bsId);
	}

	

}
